package com.easygo.controller;

import com.easygo.common.FastDFSClient;
import com.easygo.common.ResultEnum;
import com.easygo.common.ResultResponse;
import org.apache.tomcat.util.http.fileupload.FileUploadBase;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;


@Controller
public class UploadFileController {

    @Value("${FILE_SERVER_URL}")
    private String FILE_SERVER_URL;// 图片文件服务器地址

    /**
     * 文件上传到的方法
     * @param file
     * @return
     */
    @RequestMapping("/uploadImg")
    @ResponseBody
    public ResultResponse upload(MultipartFile file) {
        // 1、取文件的扩展名
        String originalFilename = file.getOriginalFilename();
        String extName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
        try {
            // 2、创建一个 FastDFS 的客户端
            FastDFSClient fastDFSClient = new FastDFSClient("classpath:config/fdfs_client.conf");
            // 3、执行上传处理  /group1/M00/00/00/rBEAD126Ue-APVCrAAB4QJntQGY128.jpg
            String path = fastDFSClient.uploadFile(file.getBytes(), extName);
            // 4、拼接返回的 url 和 ip 地址，拼装成完整的 url
            String url = FILE_SERVER_URL+"/"+path;
            System.out.println("上传成功的地址:"+url);
            return new ResultResponse(200,url); // url上传成功之后 图片的地址
        }catch (FileUploadBase.FileSizeLimitExceededException e){
            System.out.println("图片过大================");
            return new ResultResponse(777,"图片大小超出1M");
        } catch (Exception e) {
            e.printStackTrace();
            return ResultResponse.fail(ResultEnum.FAIL);
        }
    }


}
